import 'package:objectbox/objectbox.dart';

class BaseProvider<T> {
  late final Box<T> _box;

  BaseProvider(Store store) {
    _box = store.box<T>(); // 动态绑定 Box
  }

  Box<T> get box => _box;

  // 增加或更新数据
  int put(T entity) {
    return _box.put(entity);
  }

  Future<List<int>> putManyAsync(List<T> objects) {
    return _box.putManyAsync(objects);
  }

  // 获取所有数据
  List<T> getAll() {
    return _box.getAll();
  }

  // 删除数据
  bool delete(int id) {
    return _box.remove(id);
  }

  // 获取单条数据
  T? getById(int id) {
    return _box.get(id);
  }

  // 删除所有数据
  void clear() {
    _box.removeAll();
  }
}
